package org.admanager.simplifiedsca.plugin.diagram.part;

import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ComponentComponentCompartmentEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ComponentEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ComponentReferenceEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ComponentReferenceTargetEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ComponentServiceEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.CompositeCompositeCompartmentEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.CompositeEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.DocumentRootEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ReferenceEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ReferencePromoteEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ServiceEditPart;
import org.admanager.simplifiedsca.plugin.diagram.edit.parts.ServicePromoteEditPart;
import org.admanager.simplifiedsca.plugin.diagram.providers.SOADManagementMetamodelElementTypes;
import org.admanager.soadmanagement.plugin.soadmanagement.Component;
import org.admanager.soadmanagement.plugin.soadmanagement.ComponentReference;
import org.admanager.soadmanagement.plugin.soadmanagement.ComponentService;
import org.admanager.soadmanagement.plugin.soadmanagement.Composite;
import org.admanager.soadmanagement.plugin.soadmanagement.DocumentRoot;
import org.admanager.soadmanagement.plugin.soadmanagement.Reference;
import org.admanager.soadmanagement.plugin.soadmanagement.Service;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.gmf.runtime.notation.View;

/**
 * @generated
 */
public class SOADManagementMetamodelDiagramUpdater {

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/getSemanticChildren(
			View view) {
		switch (SOADManagementMetamodelVisualIDRegistry.getVisualID(view)) {
		case DocumentRootEditPart.VISUAL_ID:
			return getDocumentRoot_1000SemanticChildren(view);
		case CompositeCompositeCompartmentEditPart.VISUAL_ID:
			return getCompositeCompositeCompartment_7003SemanticChildren(view);
		case ComponentComponentCompartmentEditPart.VISUAL_ID:
			return getComponentComponentCompartment_7004SemanticChildren(view);
		}
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/getDocumentRoot_1000SemanticChildren(
			View view) {
		if (!view.isSetElement()) {
			return Collections.EMPTY_LIST;
		}
		DocumentRoot modelElement = (DocumentRoot) view.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/();
		for (Iterator/*[?]*/it = modelElement.getComposite().iterator(); it
				.hasNext();) {
			Composite childElement = (Composite) it.next();
			int visualID = SOADManagementMetamodelVisualIDRegistry
					.getNodeVisualID(view, childElement);
			if (visualID == CompositeEditPart.VISUAL_ID) {
				result.add(new SOADManagementMetamodelNodeDescriptor(
						childElement, visualID));
				continue;
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/getCompositeCompositeCompartment_7003SemanticChildren(
			View view) {
		if (false == view.eContainer() instanceof View) {
			return Collections.EMPTY_LIST;
		}
		View containerView = (View) view.eContainer();
		if (!containerView.isSetElement()) {
			return Collections.EMPTY_LIST;
		}
		Composite modelElement = (Composite) containerView.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/();
		for (Iterator/*[?]*/it = modelElement.getComponent().iterator(); it
				.hasNext();) {
			Component childElement = (Component) it.next();
			int visualID = SOADManagementMetamodelVisualIDRegistry
					.getNodeVisualID(view, childElement);
			if (visualID == ComponentEditPart.VISUAL_ID) {
				result.add(new SOADManagementMetamodelNodeDescriptor(
						childElement, visualID));
				continue;
			}
		}
		for (Iterator/*[?]*/it = modelElement.getReference().iterator(); it
				.hasNext();) {
			Reference childElement = (Reference) it.next();
			int visualID = SOADManagementMetamodelVisualIDRegistry
					.getNodeVisualID(view, childElement);
			if (visualID == ReferenceEditPart.VISUAL_ID) {
				result.add(new SOADManagementMetamodelNodeDescriptor(
						childElement, visualID));
				continue;
			}
		}
		for (Iterator/*[?]*/it = modelElement.getService().iterator(); it
				.hasNext();) {
			Service childElement = (Service) it.next();
			int visualID = SOADManagementMetamodelVisualIDRegistry
					.getNodeVisualID(view, childElement);
			if (visualID == ServiceEditPart.VISUAL_ID) {
				result.add(new SOADManagementMetamodelNodeDescriptor(
						childElement, visualID));
				continue;
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/getComponentComponentCompartment_7004SemanticChildren(
			View view) {
		if (false == view.eContainer() instanceof View) {
			return Collections.EMPTY_LIST;
		}
		View containerView = (View) view.eContainer();
		if (!containerView.isSetElement()) {
			return Collections.EMPTY_LIST;
		}
		Component modelElement = (Component) containerView.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelNodeDescriptor]*/();
		for (Iterator/*[?]*/it = modelElement.getReference().iterator(); it
				.hasNext();) {
			ComponentReference childElement = (ComponentReference) it.next();
			int visualID = SOADManagementMetamodelVisualIDRegistry
					.getNodeVisualID(view, childElement);
			if (visualID == ComponentReferenceEditPart.VISUAL_ID) {
				result.add(new SOADManagementMetamodelNodeDescriptor(
						childElement, visualID));
				continue;
			}
		}
		for (Iterator/*[?]*/it = modelElement.getService().iterator(); it
				.hasNext();) {
			ComponentService childElement = (ComponentService) it.next();
			int visualID = SOADManagementMetamodelVisualIDRegistry
					.getNodeVisualID(view, childElement);
			if (visualID == ComponentServiceEditPart.VISUAL_ID) {
				result.add(new SOADManagementMetamodelNodeDescriptor(
						childElement, visualID));
				continue;
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getContainedLinks(
			View view) {
		switch (SOADManagementMetamodelVisualIDRegistry.getVisualID(view)) {
		case DocumentRootEditPart.VISUAL_ID:
			return getDocumentRoot_1000ContainedLinks(view);
		case CompositeEditPart.VISUAL_ID:
			return getComposite_2002ContainedLinks(view);
		case ComponentEditPart.VISUAL_ID:
			return getComponent_3006ContainedLinks(view);
		case ComponentReferenceEditPart.VISUAL_ID:
			return getComponentReference_3007ContainedLinks(view);
		case ComponentServiceEditPart.VISUAL_ID:
			return getComponentService_3008ContainedLinks(view);
		case ReferenceEditPart.VISUAL_ID:
			return getReference_3009ContainedLinks(view);
		case ServiceEditPart.VISUAL_ID:
			return getService_3010ContainedLinks(view);
		}
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getIncomingLinks(
			View view) {
		switch (SOADManagementMetamodelVisualIDRegistry.getVisualID(view)) {
		case CompositeEditPart.VISUAL_ID:
			return getComposite_2002IncomingLinks(view);
		case ComponentEditPart.VISUAL_ID:
			return getComponent_3006IncomingLinks(view);
		case ComponentReferenceEditPart.VISUAL_ID:
			return getComponentReference_3007IncomingLinks(view);
		case ComponentServiceEditPart.VISUAL_ID:
			return getComponentService_3008IncomingLinks(view);
		case ReferenceEditPart.VISUAL_ID:
			return getReference_3009IncomingLinks(view);
		case ServiceEditPart.VISUAL_ID:
			return getService_3010IncomingLinks(view);
		}
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getOutgoingLinks(
			View view) {
		switch (SOADManagementMetamodelVisualIDRegistry.getVisualID(view)) {
		case CompositeEditPart.VISUAL_ID:
			return getComposite_2002OutgoingLinks(view);
		case ComponentEditPart.VISUAL_ID:
			return getComponent_3006OutgoingLinks(view);
		case ComponentReferenceEditPart.VISUAL_ID:
			return getComponentReference_3007OutgoingLinks(view);
		case ComponentServiceEditPart.VISUAL_ID:
			return getComponentService_3008OutgoingLinks(view);
		case ReferenceEditPart.VISUAL_ID:
			return getReference_3009OutgoingLinks(view);
		case ServiceEditPart.VISUAL_ID:
			return getService_3010OutgoingLinks(view);
		}
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getDocumentRoot_1000ContainedLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComposite_2002ContainedLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponent_3006ContainedLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponentReference_3007ContainedLinks(
			View view) {
		ComponentReference modelElement = (ComponentReference) view
				.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		result.addAll(getOutgoingFeatureModelFacetLinks_ComponentReference_Target_4006(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponentService_3008ContainedLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getReference_3009ContainedLinks(
			View view) {
		Reference modelElement = (Reference) view.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		result.addAll(getOutgoingFeatureModelFacetLinks_Reference_Promote_4004(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getService_3010ContainedLinks(
			View view) {
		Service modelElement = (Service) view.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		result.addAll(getOutgoingFeatureModelFacetLinks_Service_Promote_4005(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComposite_2002IncomingLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponent_3006IncomingLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponentReference_3007IncomingLinks(
			View view) {
		ComponentReference modelElement = (ComponentReference) view
				.getElement();
		Map/*[org.eclipse.emf.ecore.EObject, java.util.Collection<org.eclipse.emf.ecore.EStructuralFeature.Setting>]*/crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		result.addAll(getIncomingFeatureModelFacetLinks_Reference_Promote_4004(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponentService_3008IncomingLinks(
			View view) {
		ComponentService modelElement = (ComponentService) view.getElement();
		Map/*[org.eclipse.emf.ecore.EObject, java.util.Collection<org.eclipse.emf.ecore.EStructuralFeature.Setting>]*/crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		result.addAll(getIncomingFeatureModelFacetLinks_Service_Promote_4005(
				modelElement, crossReferences));
		result.addAll(getIncomingFeatureModelFacetLinks_ComponentReference_Target_4006(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getReference_3009IncomingLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getService_3010IncomingLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComposite_2002OutgoingLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponent_3006OutgoingLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponentReference_3007OutgoingLinks(
			View view) {
		ComponentReference modelElement = (ComponentReference) view
				.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		result.addAll(getOutgoingFeatureModelFacetLinks_ComponentReference_Target_4006(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getComponentService_3008OutgoingLinks(
			View view) {
		return Collections.EMPTY_LIST;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getReference_3009OutgoingLinks(
			View view) {
		Reference modelElement = (Reference) view.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		result.addAll(getOutgoingFeatureModelFacetLinks_Reference_Promote_4004(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getService_3010OutgoingLinks(
			View view) {
		Service modelElement = (Service) view.getElement();
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		result.addAll(getOutgoingFeatureModelFacetLinks_Service_Promote_4005(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getIncomingFeatureModelFacetLinks_Reference_Promote_4004(
			ComponentReference target,
			Map/*[org.eclipse.emf.ecore.EObject, java.util.Collection<org.eclipse.emf.ecore.EStructuralFeature.Setting>]*/crossReferences) {
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		Collection/*[org.eclipse.emf.ecore.EStructuralFeature.Setting]*/settings = (Collection) crossReferences
				.get(target);
		for (Iterator/*[org.eclipse.emf.ecore.EStructuralFeature.Setting]*/it = settings
				.iterator(); it.hasNext();) {
			EStructuralFeature.Setting setting = (EStructuralFeature.Setting) it
					.next();
			if (setting.getEStructuralFeature() == org.admanager.soadmanagement.plugin.soadmanagement.soadmanagementPackage.eINSTANCE
					.getReference_Promote()) {
				result.add(new SOADManagementMetamodelLinkDescriptor(
						setting.getEObject(),
						target,
						SOADManagementMetamodelElementTypes.ReferencePromote_4004,
						ReferencePromoteEditPart.VISUAL_ID));
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getIncomingFeatureModelFacetLinks_Service_Promote_4005(
			ComponentService target,
			Map/*[org.eclipse.emf.ecore.EObject, java.util.Collection<org.eclipse.emf.ecore.EStructuralFeature.Setting>]*/crossReferences) {
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		Collection/*[org.eclipse.emf.ecore.EStructuralFeature.Setting]*/settings = (Collection) crossReferences
				.get(target);
		for (Iterator/*[org.eclipse.emf.ecore.EStructuralFeature.Setting]*/it = settings
				.iterator(); it.hasNext();) {
			EStructuralFeature.Setting setting = (EStructuralFeature.Setting) it
					.next();
			if (setting.getEStructuralFeature() == org.admanager.soadmanagement.plugin.soadmanagement.soadmanagementPackage.eINSTANCE
					.getService_Promote()) {
				result.add(new SOADManagementMetamodelLinkDescriptor(
						setting.getEObject(),
						target,
						SOADManagementMetamodelElementTypes.ServicePromote_4005,
						ServicePromoteEditPart.VISUAL_ID));
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getIncomingFeatureModelFacetLinks_ComponentReference_Target_4006(
			ComponentService target,
			Map/*[org.eclipse.emf.ecore.EObject, java.util.Collection<org.eclipse.emf.ecore.EStructuralFeature.Setting>]*/crossReferences) {
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		Collection/*[org.eclipse.emf.ecore.EStructuralFeature.Setting]*/settings = (Collection) crossReferences
				.get(target);
		for (Iterator/*[org.eclipse.emf.ecore.EStructuralFeature.Setting]*/it = settings
				.iterator(); it.hasNext();) {
			EStructuralFeature.Setting setting = (EStructuralFeature.Setting) it
					.next();
			if (setting.getEStructuralFeature() == org.admanager.soadmanagement.plugin.soadmanagement.soadmanagementPackage.eINSTANCE
					.getComponentReference_Target()) {
				result.add(new SOADManagementMetamodelLinkDescriptor(
						setting.getEObject(),
						target,
						SOADManagementMetamodelElementTypes.ComponentReferenceTarget_4006,
						ComponentReferenceTargetEditPart.VISUAL_ID));
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getOutgoingFeatureModelFacetLinks_Reference_Promote_4004(
			Reference source) {
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		for (Iterator/*[?]*/destinations = source.getPromote().iterator(); destinations
				.hasNext();) {
			ComponentReference destination = (ComponentReference) destinations
					.next();
			result.add(new SOADManagementMetamodelLinkDescriptor(source,
					destination,
					SOADManagementMetamodelElementTypes.ReferencePromote_4004,
					ReferencePromoteEditPart.VISUAL_ID));
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getOutgoingFeatureModelFacetLinks_Service_Promote_4005(
			Service source) {
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		ComponentService destination = source.getPromote();
		if (destination == null) {
			return result;
		}
		result.add(new SOADManagementMetamodelLinkDescriptor(source,
				destination,
				SOADManagementMetamodelElementTypes.ServicePromote_4005,
				ServicePromoteEditPart.VISUAL_ID));
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/getOutgoingFeatureModelFacetLinks_ComponentReference_Target_4006(
			ComponentReference source) {
		LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/result = new LinkedList/*[org.admanager.simplifiedsca.plugin.diagram.part.SOADManagementMetamodelLinkDescriptor]*/();
		for (Iterator/*[?]*/destinations = source.getTarget().iterator(); destinations
				.hasNext();) {
			ComponentService destination = (ComponentService) destinations
					.next();
			result.add(new SOADManagementMetamodelLinkDescriptor(
					source,
					destination,
					SOADManagementMetamodelElementTypes.ComponentReferenceTarget_4006,
					ComponentReferenceTargetEditPart.VISUAL_ID));
		}
		return result;
	}

}
